package interfaces;

import enums.WishType;


public abstract class AbstractWish {

	protected long startTime;
	public AbstractWish(long startTime) {
		this.startTime = startTime;
	}	

	public long getStartTime() {
		return startTime;
	}
	
	public boolean hasExpired() {
		return System.currentTimeMillis() >= getDeadLine();
	}
	
	public abstract boolean canBeFulfilled();
	public abstract boolean fulfill();
	public abstract long getDeadLine();
	public abstract String toString();
	public abstract WishType getType();
}